package com.docchatlink.iflytek2.vo;

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author Mr.piggy
 * @since 2024/7/3
 */
@Data
public class FileUploadParam {
    /**
     * 文件url （文件和文件url必须有一个）
     */
    private String url;
    /**
     * 文件名称，带后缀
     * 文件用url的方式，该字段必传；传file的话，该字段可不传
     */
    private String fileName;
    /**
     * 文件类型
     * 目前传固定值"wiki"
     */
    private String fileType;
    /**
     * 文件解析类型
     * "AUTO"-服务端智能判断是否需要走OCR，"TEXT"-直接读取文件文本内容，"OCR"-强制走OCR，目前仅pdf、word支持
     */
    private String parseType;
    /**
     * 是否分步处理
     * true代表文件上传之后，服务只做了分片，这时候还不能去问答。需要业务做分片的确认，然后调用【文档向量化】接口，发起切片向量。待向量完成，即可问答。
     */
    private Boolean stepByStep;
    /**
     * 文件状态回调地址
     * 文件状态有变动时服务会调用该url。调用方式见下方
     */
    private String callbackUrl;
    /**
     * 文件拆分扩展字段
     * 文件拆分扩展字段(转为JSONString)，也可在分步时，单独调用拆分接口重新发起拆分
     */
    private WikiSplitExtends extend;

    @Data
    public static class WikiSplitExtends {
        /**
         * 分段分隔符，支持多分隔符，base64编码
         * 默认 ["DQo="]
         */
        private List<String> chunkSeparators;
        /**
         * 分段最大长度，超过强行切分
         * 默认2000
         */
        private Integer chunkSize;
        /**
         * 分段最小长度，小于这个长度的会聚合
         * 默认256
         */
        private Integer minChunkSize;
    }

}
